<?
#     Xepec.ru - социальная сеть
#     Copyright (C) 2008  Fedorchenko Alexander
#
#     This program is free software: you can redistribute it and/or modify
#     it under the terms of the GNU Affero General Public License as
#     published by the Free Software Foundation, either version 3 of the
#     License, or (at your option) any later version.
#
#     This program is distributed in the hope that it will be useful,
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#     GNU Affero General Public License for more details.
#
#     You should have received a copy of the GNU Affero General Public License
#     along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#     Autor: Fedorchenko Alexander
#     Mail: sos20@list.ru
#     Date: 17/01/2009
#
#
$sss =$_FILES["filename"]["name"];
setcookie('mp3filename', $sss, time()+1800);

include ("../core.php");
include ("lib_music.php");

$date = date("c");
$auth_id = do_check();
if($auth_id == FALSE) header("Location: /");

$uname_get=$_GET['uname'];
if (isset($uname_get))
{
	if ($uname_get !== $auth_id) $masha=1;
}
else
{
	$masha=0;
}
if ($masha == 0)
{
$uname_get=$auth_id;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// для пользователей созжанна папка usr где с 22/07/09 лежат все личные фаилы и конфиги                                 ///
// в для муэыки например путь к ваилам такой http://xepec.ru/usr/2/music/ddd.mp3                                        ///
$username_dir="usr/".$uname_get."/music";  //переменная для относительной ссыки например для скачивания                 ///
$url = $DOC_ROOT.$username_dir."/";  //полный путь к папке на диске например для проверки сущ. у пользователя музыки    ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#echo $url;

global $act;
$act=$_GET['act'];

ini_set("include_path", ini_get("include_path") . PATH_SEPARATOR . "/usr/share/php/Reader/lib");
require_once("ID3v1.php");
require_once("ID3v2.php");



#$mp3filename ='tmp/'.$sss;

#session_start();
#$_SESSION['mp3filename'] = "tmp/".$_FILES["filename"]["name"];

$extras = "
      <h2>Пропущенно</h2>
       <p> <a href=\"#\">Open Web Design</a><br />
       <a rel=\"nofollow\" href=\"http://validator.w3.org/check?uri=referer\">XHTML 1.0 Strict</a><br />
       <a rel=\"nofollow\" href=\"http://jigsaw.w3.org/css-validator/check/referer\">Valid CSS</a> </p>
       <p>Тут может быть очень умный текст, но я не нашел его, поэтому можно даже и не обращать на него внимания</p>
    <hr />";
 
    
    
    
 
$text = "
	    <!-- контент -->
	    <table border=\"0\" class=\"profileTable\" cellpadding=\"0\" cellspacing=\"0\"width=\"100%\">
	      <tr>
		     <td>
			<div class=\"basicInfo\">";
			
			
			if(isset($act)==FALSE) $act='pl';
			switch ($act) 
			{
				case "pl":
				
					$subnav="
					<ul>
						<li><a href=\"?act=playlist\">Плэйлист</a></li>
						<li class=\"child\"> <a href=\"?act=add\">Добавить файл</a></li>
						<li class=\"child\"> <a href=\"?act=dl\">Скачать</a></li>
						<li><a href=\"?act=exit\">Уйти из системы</a></li>
					</ul>
					<!--проебаные события-->";

					
					#require_once 'player.php';
					if ($dir = is_dir($url))
					{
						require_once './111.php';
					}
					else
					{
#					    echo $masha."<br>";
						if($masha == 1)$text = $text."<p>У пользователя нет музыки</p>";
						else
						{
						$text = $text."<p>У вас пока нет саундов <a href=\"./index.php?act=add\">загрузить</a></p>";
						}
					}
				break;
				case 'playlist':
				
					$subnav="
					<ul>
						<li><a href=\"?act=pl\">Плеер</a></li>
						<li class=\"child\"> <a href=\"?act=add\">Добавить файл</a></li>
						<li class=\"child\"> <a href=\"?act=dl\">Скачать</a></li>
						<li><a href=\"?act=exit\">Уйти из системы</a></li>
					</ul>
					<!--проебаные события-->";
					
					$text = $text."<h2>Редактирование плэй-листа</h2>";
					$mp3filename=$_COOKIE['mp3filename'];
					#session_start();
					#	$mp3filename=$_SESSION['mp3filename'];
					#	// создаем объект, читаем данные 
					#	echo $mp3filename.'sdf';
					#	echo $sss;
					#	print_r($mp3filename);
					if(isset($_POST['title']) or isset($_POST['artist']) or isset($_POST['album']) or isset($_POST['year']) or isset($_POST['comment']) or isset($_POST['genre']) or isset($_POST['track']))
					{
						#require_once 'Id.php';
						
						$mp3_tag_new = array # Массив с тэгама mp3`шника
						(
						"title"		=>	$_POST['title'],
						"artist"	=>	$_POST['artist'],
						"album"		=>	$_POST['album'],
						"year"		=>	$_POST['year'],
						"genre"		=>	$_POST['genre'],
						"track"		=>	$_POST['track']
						);
						#print_r(array_keys($mp3_tag));
						$arr_keys_tag = array_keys($mp3_tag_new);
						
						#echo "<table>"
						for ($i=0; $i < count($arr_keys_tag); $i++)
						{
						#	$mp3_tag_new[$arr_keys_tag[$i]]=str_replace("&#8216",'\'', $mp3_tag_new[$arr_keys_tag[$i]]);
							#$mp3_tag_new[$arr_keys_tag[$i]]=str_replace("=",'&#', $mp3_tag_new[$arr_keys_tag[$i]]);
							#$mp3_tag_new[$arr_keys_tag[$i]]=str_replace(";",'&#', $mp3_tag_new[$arr_keys_tag[$i]]);
						#	$mp3_tag_new[$arr_keys_tag[$i]]=str_replace("&#34",'\"', $mp3_tag_new[$arr_keys_tag[$i]]);
						}
						
						$mp3filename = $username_dir."/".$_COOKIE['mp3filename'];
						// создаем объект, читаем данные 
						$mp3filename=stripslashes($mp3filename);
						
						$text = $text."<br>".$mp3filename;
						
#						mp3_tags_write($mp3filename, 'title', $mp3_tag_new['title']);
#						mp3_tags_write($mp3filename, 'artist', $mp3_tag_new['artist']);
#						mp3_tags_write($mp3filename, 'album', $mp3_tag_new['album']);
#						mp3_tags_write($mp3filename, 'year', $mp3_tag_new['year']);
#						mp3_tags_write($mp3filename, 'genre', $mp3_tag_new['genre']);
#						mp3_tags_write($mp3filename, 'track', $mp3_tag_new['track']);
						
						
						$text = $text."Тег успешно записан.! \n";
						#print_r($mp3_tag_new);
						
					}
					else
					{
						if (is_dir($url)) 
						{
	
							if ($dir = opendir($url)) 
							{
								$c=1;
								$text = $text."<table style=\"border: solid 1px #999;\" width=100%>";
								while (false !== ($file = readdir($dir)))
								{
									if ($file != "." && $file != "..") 
									{
										$text = $text."<tr><td>";
	
										
						
										$mp3filename1 = $url.$file;
										
										/// Информашия о размере фаила, и округлили до второго знака после запитой
										$filesize = filesize($mp3filename1)/1024;
										$filesize = $filesize/1024;
										$filesize = $filesize*100;
										$filesize = round($filesize);
										$filesize = $filesize/100;
										// Читаем поля и выводим информацию 

										
										$tag = mp3_tags_read($mp3filename1);
										$tag = str_replace('\"' ,'"' ,$tag);
										////////////////////////////////////////////////////////////////////////////////////
										// Замена пробела на %20, это не обходимо делать после того как взяли ID теги!!!////
										$file = str_replace(' ', '%20', $file);/////////////////////////////////////////////
										////////////////////////////////////////////////////////////////////////////////////
										
										$text = $text."
										<script language=\"JavaScript\">
										function toggleMoreOpts".$c."(show)
										{
											if (show)
											{
												document.getElementById('showMoreOpts".$c."').style.display = 'none';
												document.getElementById('showLessOpts".$c."').style.display = '';
											}
											else
											{
												document.getElementById('showLessOpts".$c."').style.display = 'none';
												document.getElementById('showMoreOpts".$c."').style.display = '';
											}
	
											var rows = document.getElementById('lTable".$c."').getElementsByTagName('TBODY').item(0).getElementsByTagName('TD');
											for (var i=0; i<rows.length; i++)
											{
												if (rows[i].className == 'moreOpts')
												{
													if (show)
													rows[i].style.display = '';
													else
													rows[i].style.display = 'none';
												}
											}
											return false;
										}
										</script>";
										
										$text = $text."
										<table border=0 id=\"lTable".$c."\" style=\"border-collapse: collapse;\" align=center width=100%>
											<tr>
												<td width=100% >
													<table id=\"table_slim\">
														<tr id=\"mp3files_tr\">
															<td id=\"mp3files_td\" width=2%>".$c."</td>
															<td id=\"mp3files_td\" width=25%>".$tag['title']."</td>
															<td id=\"mp3files_td\" width=25%>".$tag['artist']."</td>
															<td id=\"mp3files_td\">".$tag['album']."</td>
															<td id=\"mp3files_td\" width=6%>".$tag['year']."</td>
														</tr>
													</table>
												</td>
											</tr>

											<tr id=\"showMoreOpts".$c."\" class=\"toggleOpts".$c."\">
												<td onClick=\"return toggleMoreOpts".$c."(1);\" heigth=11px>
													<table border=\"0\" style=\"border-collapse: collapse;\" width=100%>
														<tr>
															<td><img src=./m_open.png align=\"top\"></td>
															<td></td>
															<td></td>
														</tr>
													</table>
												</td>
											</tr>
											<tr id=\"showLessOpts".$c."\" class=\"toggleOpts".$c."\" style=\"display:none;\">
												<td onClick=\"return toggleMoreOpts".$c."(0);\" width=100% >
													<table border=\"0\" style=\"border-collapse: collapse;\" width=100%>
														<tr>
															<td><img src=./m_close.png align=\"top\"></td>
															<td><a href=\"http://xepec.ru/".$username_dir."/".$file."\">http://xepec.ru/".$username_dir."/".$file."</a></td>
															<td>".$filesize." Мб</td>
														</tr>
													</table>
												</td>
											</tr>

									



										</table>";
										$text = $text."</td></tr>";
										$c++;
									}
								}
								$text = $text."</table>";
							}
								//Закрываем директорию
								closedir($dir);
						}
					}
				break;
				case 'add':
					$subnav="
					<ul>
						<li><a href=\"?act=pl\">Плеер</a></li>
						<li><a href=\"?act=playlist\">Плейлист</a></li>
						<li class=\"child\"> <a href=\"?act=dl\">Скачать</a></li>
						<li><a href=\"?act=exit\">Уйти из системы</a></li>
					</ul>
					<!--проебаные события-->";
					
					$text = $text."
					<h2><p><b>Загрузка аудио файла</b></p></h2>
					<p>В настоящее время корректно работают только MP3 файлы, в ближайшее время будут доступны и другие форматы</p>
					<form action=\"index.php?act=add-ok\" method=\"post\" enctype=\"multipart/form-data\" heigth=\"100%\">
					<input type=\"file\" name=\"filename\" heigth=\"100%\"><br> 
					<input type=\"submit\" value=\"Загрузить\"><br>
					</form>
					<p>P.S. размер файла не должет превышать 10 мб</p>";
					
				break;
				case 'add-ok':
					$subnav="
					<ul>
						<li><a href=\"?act=pl\">Плеер</a></li>
						<li><a href=\"?act=playlist\">Плейлист</a></li>
						<li class=\"child\"> <a href=\"?act=dl\">Скачать</a></li>
						<li><a href=\"?act=exit\">Уйти из системы</a></li>
					</ul>
					<!--проебаные события-->";
					
					#require_once 'Id.php';
					if(!is_dir($url)) mkdir($url, 0755);
						
					
					
					function check_file_name($filename) 
					{
						$result=(substr($filename,0,1)!='/' && substr($filename,0,1)!='\\');
						if ($result)
							{
							$test=array('..','://','~','`','\'','"',':',';',',','&','>','<');
							for ($i=0, $count=count($test); $i<$count && $result; $i++) $result=(strpos($filename,$test[$i])===false);
							}
						return $result;
					}

					$aq=check_file_name($sss);
					if ($debug == TRUE) $text = $text."Имя подходит:$aq<br>";
					//echo $_FILES["filename"]["type"];
					$type = 'audio/mpeg';
					//$type = "application/octet-stream﻿";
					if (($_FILES["filename"]["size"] > 1024*1024*10) or ($_FILES["filename"]["type"] != $type ))
					{
						$text = $text."
						Размер файла превышает 10 мегабайт
						<p>P.S. на некоторых браузерах отправка фаилов может работать не коректно на в том числе Midori. Если у вас проблемы, пожалуйста, <a href=\"/bugzilla/index.php?act=add\">сообщите</a> об этом</p>";
						log_write($date.': Пользователь #'.$auth_id.' пытался загрузить фаил больше 10мб или не "audio/mpeg" (IP: '.$_SERVER["REMOTE_ADDR"].' Agent: '.$_SERVER["HTTP_USER_AGENT"].')');

						//exit;
					}
					else
					{
						echo "qqq";
						if(copy($_FILES["filename"]["tmp_name"],$url."/".$_FILES["filename"]["name"]))
						{
							log_write($date.': Пользователь #'.$auth_id.' загрузил фаил: '.$MUSIC_DIR.$username_dir.'/'.$_FILES["filename"]["name"].' размером:'.$_FILES["filename"]["size"].' (IP: '.$_SERVER["REMOTE_ADDR"].' Agent: '.$_SERVER["HTTP_USER_AGENT"].')');
							
							$text = $text."<h2>Файл успешно загружен </h2>";
							$text = $text."<b>Характеристики файла:</b> <br>";
							
							if ($debug == TRUE) $text = $text.'<table border=\"1\">'; else $text = $text.'<table border=\"0\">';
							$text = $text."<tr><td>Имя файла:</td><td>".$_FILES["filename"]["name"]."</td></tr>";
							$text = $text."<tr><td>Размер файла:</td><td>".$_FILES["filename"]["size"]."</td></tr>";
							$text = $text."<tr><td>Временное место:</td><td>".$_FILES["filename"]["tmp_name"]."</td></tr>";
							$text = $text."<tr><td>Тип файла:</td><td>".$_FILES["filename"]["type"]."</td></tr>";
							$text = $text."</table>";
							
							// Создаем объект, читаем файл 
							$mp3filename = $username_dir."/".$_FILES["filename"]["name"];
							
							#session_start();
							#$mp3filename=$_COOKIE['mp3filename'];
							// создаем объект, читаем данные 
							$text = $text.$mp3filename;
							
							$mp3_tag = mp3_tags_read($mp3filename);
							
							#print_r(array_keys($mp3_tag));
							$arr_keys_tag = array_keys($mp3_tag);
							
							#echo "<table>"
							for ($i=0; $i < count($arr_keys_tag); $i++)
							{
								#$bad_simbol=array('..','://','~','`','"',"'",':',';',',','&','>','<');
								#for ($c=0, $count=count($bad_simbol); $i<$count; $c++)
								#{
									#$arr_keys_tag[$i]=str_replace($bad_simbol[$c],"\\".$bad_simbol[$c], $arr_keys_tag[$i]);
									#<tr><td>
								$mp3_tag[$arr_keys_tag[$i]]=str_replace("'",'&#8216', $mp3_tag[$arr_keys_tag[$i]]);
								$mp3_tag[$arr_keys_tag[$i]]=str_replace("=",'&#', $mp3_tag[$arr_keys_tag[$i]]);
								$mp3_tag[$arr_keys_tag[$i]]=str_replace(";",'&#', $mp3_tag[$arr_keys_tag[$i]]);
								$mp3_tag[$arr_keys_tag[$i]]=str_replace("\"",'&#34', $mp3_tag[$arr_keys_tag[$i]]);
								#}
							}
							$text = $text."после:".$mp3_tag[$arr_keys_tag[0]];
							// Читаем поля mp3 тэгов и выводим информацию 
							
							$text = $text."<br><b>Музыкальная информация:</b><br>";
							$text = $text.'<form action=index.php?act=playlist method=post enctype=\"multipart/form-data\">';
							if ($debug == TRUE) $text = $text.'<table border=\"1\">'; else $text = $text.'<table border=\"0\">';
							
							$text = $text.'<tr><td>Название:</td><td><input type=\"text\" size=\"20\" maxlength=\"30\" name=title value=\''.$mp3_tag['title'].'\'></td></tr>'; 
							$text = $text.'<tr><td>Исполнитель:</td><td><input type=\"text\" size=\"20\" maxlength=\"30\" name=artist value=\''.$mp3_tag['artist'].'\'></td></tr>';
							$text = $text.'<tr><td>Альбом:</td><td><input type=\"text\" size=\"20\" maxlength=\"30\" name=album value=\''.$mp3_tag['album'].'\'></td></tr>';
							$text = $text.'<tr><td>Год:</td><td><input type=\"text\" size=\"20\" maxlength=\"4\" name=year value=\''.$mp3_tag['year'].'\'></td></tr>';
							$text = $text.'<tr><td>Жанр:</td><td><input type=\"text\" size=\"20\" maxlength=\"10\" name=genre value=\''.$mp3_tag['genre'].'\'></td></tr>';
							$text = $text.'<tr><td>Трэк:</td><td><input type=\"text\" size=\"20\" maxlength=\"2\" name=track value=\''.$mp3_tag['track'].'\'></td></tr>';
							$text = $text.'</table>';
							$text = $text.'<input type=submit name=send value=Подтвердить></form>';
						}
						else
						{
							$text = $text."Ошибка загрузки файла";
						}
					}
				break;
				case 'exit':
					#FIXME Траблы с куками при выходе: появляются куки с ресурса .wwww.xepec.ru
					setcookie("xepec_mail", 0 ,0, "/", "www.xepec.ru");
					setcookie("xepec_pass", 0 ,0, "/", "www.xepec.ru");
					header("Location: http://www.xepec.ru/");
				break;
				case 'dl':
					$subnav="
					<ul>
						<li><a href=\"?act=pl\">Плеер</a></li>
						<li><a href=\"?act=playlist\">Плейлист</a></li>
						<li class=\"child\"> <a href=\"?act=add\">Добавить файл</a></li>
						<li><a href=\"?act=exit\">Уйти из системы</a></li>
					</ul>
					<!--проебаные события-->";
					
					#TODO: Дать пользавателю выбор что делать с m3u || pls данными, скачать фаил или получить ссылку.
					# А также в каком формате, и все это именно на JAVA
					
					$text = $text."Для совместимости с аудио плеером можете скачать ваш плейлист в формате \".M3U\"\n<br>";
					$sd = playlist_to_pls(2);
					$text = $text.$sd;
				break;
			}
			#echo "11";
				
				
     			$text = $text."</div>";
$content = $text;

include ("../theme.php");
?>
